// 给日期类对象添加日期差方法，返回日期与diff参数日期的时间差，单位为天
Date.prototype.diff = function(date) {
	return (this.getTime() - date.getTime()) / (24 * 60 * 60 * 1000);
}
// 对Date的扩展，将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符， 
// 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
// 例子： 
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
Date.prototype.Format = function (fmt) { //author: meizz 
    var o = {
        "M+": this.getMonth() + 1, //月份 
        "d+": this.getDate(), //日 
        "h+": this.getHours(), //小时 
        "m+": this.getMinutes(), //分 
        "s+": this.getSeconds(), //秒 
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
        "S": this.getMilliseconds() //毫秒 
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}
/**
 * 选择日期
 * @param {Object} textId
 */
function onchangeDate(textId) {
	var dDate = new Date();
	//	dDate.setFullYear(2015, 2, 5);
	var minDate = new Date();
	minDate.setFullYear(1970, 0, 1);
	var maxDate = new Date();
	maxDate.setFullYear(2049, 11, 31);
	plus.nativeUI.pickDate(function(e) {
		var d = e.date;
		var dd = d.getFullYear() + "-" + ((d.getMonth() + 1) < 10 ? "0" + (d.getMonth() + 1) : (d.getMonth() + 1)) +
			"-" + (d.getDate() < 10 ? "0" + d.getDate() : d.getDate());
		$("#" + textId).val(dd);
	}, function(e) {
		//			info.innerText = "您没有选择日期";
	}, {
		title: "请选择日期",
		date: dDate,
		minDate: minDate,
		maxDate: maxDate
	});
}

var picker;
/**
 * 选择日期时间	年月日时分秒
 * @param {Object} textId
 */
function onchangeDateTime(textId) {
//	var optionsJson = this.getAttribute('data-options') || '{}';
	var options = JSON.parse('{}');
	/*
	 * 首次显示时实例化组件
	 * 示例为了简洁，将 options 放在了按钮的 dom 上
	 * 也可以直接通过代码声明 optinos 用于实例化 DtPicker
	 */
	if(picker == null){
		picker = new mui.DtPicker(options);
	}
	picker.show(function(rs) {
		/*
		 * rs.value 拼合后的 value
		 * rs.text 拼合后的 text
		 * rs.y 年，可以通过 rs.y.value 和 rs.y.text 获取值和文本
		 * rs.m 月，用法同年
		 * rs.d 日，用法同年
		 * rs.h 时，用法同年
		 * rs.i 分（minutes 的第二个字母），用法同年
		 */
//		result.innerText = '选择结果: ' + rs.text;
//		mui.toast(rs.value);
		$("#" + textId).val(rs.value+":00");
		/* 
		 * 返回 false 可以阻止选择框的关闭
		 * return false;
		 */
		/*
		 * 释放组件资源，释放后将将不能再操作组件
		 * 通常情况下，不需要示放组件，new DtPicker(options) 后，可以一直使用。
		 * 当前示例，因为内容较多，如不进行资原释放，在某些设备上会较慢。
		 * 所以每次用完便立即调用 dispose 进行释放，下次用时再创建新实例。
		 */
//		picker.dispose();
	});
}

//下载文件
function downloadFile(fileId, fileDisplayName) {
	var btnArray = ['是', '否'];
	mui.confirm('确认下载文件：' + fileDisplayName, '提示', btnArray, function(e) {
		if (e.index == 0) {
			mui.toast("正在下载 " + fileDisplayName + ",请稍后！");
			var url = appWsUrlDownLoad;
			createDownloadTask(url, fileId, fileDisplayName);
		} else {

		}
	});
}
//下载文件
function createDownloadTask(url, fileId, fileName) {
	var options = {
		method: "GET"
	};
	var ufileName = encodeURI(fileName);
	ufileName = encodeURI(ufileName);
	url = url + fileId + "/" + ufileName + ".cpeam";

	var dtask = plus.downloader.createDownload(url, options);
	dtask.addEventListener("statechanged", function(task, status) {
		switch (task.state) {
			case 1: // 开始
				mui.toast("正在下载" + fileName + ",请稍后！");
				break;
			case 2: // 已连接到服务器
				//mui.toast( "链接到服务器..." );
				break;
			case 3: // 已接收到数据

				break;
			case 4: // 下载完成
				mui.toast("下载完成！请在设置->查看已下载文件中查看。", 3000);
				plus.io.requestFileSystem(plus.io.PUBLIC_DOWNLOADS, function(fs) {
					//使用第三方软件打开
					plus.runtime.openFile(fs.root.fullPath + fileName);
				}, function(e) {
					mui.toast(e.message);
				});
				break;
		}
	});
	dtask.start();
}

//附件
function attachment(file_datas) {
	//如果附件为0，则不显示
	if(file_datas==null || file_datas.length == 0){
		$("#a_fj").hide();
		$("#item_fj").hide();
		return;
	} else if(file_datas[0].token_list.length == 0) {
		$("#a_fj").hide();
		$("#item_fj").hide();
		return;
//	} else if(file_datas != null){
//		$("#a_fj").hide();
//		$("#item_fj").hide();
//		return;
	}
	for (var i = 0; i < file_datas.length; i++) {
		var token_name = file_datas[i].token_name;
		var token_list = file_datas[i]["token_list"];
		var item1 = "<div><span style='margin-top: 20%;margin-left: 5%;color: #969494'>" + token_name + "</span>";
		var item2 = "";
		for (var k = 0; k < token_list.length; k++) {
			var file_display_name = token_list[k].file_display_name;
			var file_id = token_list[k].file_id;
			var filePath = token_list[k].file_path;
			var fileName = token_list[k].file_name;
			item2 += "<div class='my-detail-accessory' style='margin-left: 5%;'>"+
				"<a class='' onclick=downloadFile('"+file_id+"','"+file_display_name+"')>" + file_display_name + "</a>"+
				"</div>";
//			item2 = "<a class='mui-navigate-right' onclick=downloadFile('"+file_id+"')>" + file_display_name + "</a>";
//			$("#div_fj").append(item2);
		}
		item1 = item1 + item2 + "</div>";
		$("#div_fj").append(item1);
	}
}
//流程审批过程
function Approval(approval_datas) {
//	var ahtml = "<div id='scroll_lczt' class='mui-scroll-wrapper'>"+
//				"	<div id='content_lczt' class='mui-scroll'>";
	var ahtml = "";
	for (var i = 0; i < approval_datas.length; i++) {
		var node_name = approval_datas[i].node_name;
		var task_comment = approval_datas[i].task_comment;
		var approver = approval_datas[i].approver;
		var node_id = approval_datas[i].node_id;
		var end_time = approval_datas[i].end_time;
		if (task_comment == "" || task_comment == " ") task_comment = "&nbsp;";
		if (approver == null || approver == "") approver = "&nbsp;";
//		task_comment += "空间看了就可垃圾上课老师放假时空裂缝收付款啦就";
		var html = "<ul class='mui-table-view' style='margin-bottom:5px;'>"+
			"<li class='mui-table-view-cell'><h5 class='my-listview-item-title'>审批人</h5>" +
			"<h5 class='my-listview-item-l'>" + approver + "</h5></li>" +
			"<li class='mui-table-view-cell'><h5 class='my-listview-item-title'>审批节点名称</h5>" +
			"<h5 class='my-listview-item-l'>" + node_name + "</h5></li>" +
			"<li class='mui-table-view-cell'><h5 class='my-listview-item-title'>审批时间</h5>" +
			"<h5 class='my-listview-item-l'>" + end_time + "</h5></li>" +
			"<li class='mui-table-view-cell'><h5 class='my-listview-item-title'>审批意见</h5>" +
			"<h5 class='my-listview-item-l'>" + task_comment + "</h5></li>" +
			"</ul>";
		ahtml += html;
	}
	$("#content_lczt").append(ahtml);
}

//获取远程数据，list<map<key,value>>
var attr_ajax = function(code) {
	var types = {};
    types[plus.networkinfo.CONNECTION_UNKNOW] = "未知";
    types[plus.networkinfo.CONNECTION_NONE] = "未连接网络";
    types[plus.networkinfo.CONNECTION_ETHERNET] = "有线网络";
    types[plus.networkinfo.CONNECTION_WIFI] = "WiFi网络";
    types[plus.networkinfo.CONNECTION_CELL2G] = "2G蜂窝网络";
    types[plus.networkinfo.CONNECTION_CELL3G] = "3G蜂窝网络";
    types[plus.networkinfo.CONNECTION_CELL4G] = "4G蜂窝网络";
	//如果没有网络，则加载缓存内容
	if(types[plus.networkinfo.getCurrentType()] == '未连接网络'){
//		return null;
	}
	var url = appWsUrlgetDataByCode;
	var data = {"code":code};
	mui.ajax(url, {
		data: data,
		dataType: "json", //服务器返回json格式数据
		type: "post", //HTTP请求类型
		timeout: 10000, //超时时间设置为10秒；
		success: function(response) {
			//报错验证
			if(response.length==1 && response[0].error!=null){
				mui.toast(response[0].error);
				return;
			}
			response = JSON.stringify(response);	//转换为json格式字符串
			localStorage.setItem(code, response);
		},
		error: function(xhr, type, errorThrown) {
			//异常处理；
		}
	});
}
//根据ID获取存储内容，本地没有数据，则获取远程数据，数据存储格式为json格式字符串
function getStorage(id){
	var value = localStorage.getItem(id);
	//本地没有数据，则获取远程数据
	if(value == null || value.length == 0 || value == "[]" || value == "{}"){
		attr_ajax(id);	//远程数据
		value = localStorage.getItem(id);
	}
	return value;
}
/**
 * select的ID，编码，赋值到select文本框中
 * @param {Object} selectId	文本框ID
 * @param {Object} code		属性编码
 */
function showSelect(selectId, code){
	var res = getStorage(code);
	res = eval('(' + res + ')');
	if(res == null){
		return ;
	}
	for(var i=0; i<res.length; i++){
		var map = res[i];
		var key = map.KEY;
		var value = map.VALUE;
		var select_html = "<option value='"+key+"'>"+value+"</option>";
		$("#"+selectId).append(select_html);
	}
}

/**
 * js睡眠
 * @param {Object} numberMillis	毫秒
 */
function sleep(numberMillis) {
	var now = new Date();
	var exitTime = now.getTime() + numberMillis;
	while (true) {
		now = new Date();
		if (now.getTime() > exitTime)
			return;
	}
}